Presto হল একটি SQL ভিত্তিক ডিস্ট্রিবিউটেড কোয়েরি ইঞ্জিন, এবং এটি বড় ডেটাসেটের জন্য বিভিন্ন ধরনের SQL অপারেশন করতে সক্ষম। এই টিউটোরিয়ালে আমরা দেখবো কীভাবে Presto তে Joins, Filters, এবং Aggregation ব্যবহার করা যায়।
Presto তে Joins ব্যবহার করে একাধিক টেবিলের ডেটা একত্র করা যায়। Presto সমস্ত স্ট্যান্ডার্ড SQL Join অপারেশন সাপোর্ট করে, যেমন INNER JOIN, LEFT JOIN, RIGHT JOIN, এবং FULL JOIN। নিচে কিছু উদাহরণ দেওয়া হলো:
INNER JOIN টেবিলগুলোর মিলিত রেকর্ডগুলো দেখায় যেখানে দুটি টেবিলের মধ্যে সম্পর্ক রয়েছে।
উদাহরণ:
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers
ON orders.customer_id = customers.customer_id;
এই কোয়েরিটি orders
এবং customers
টেবিলের মধ্যে customer_id
এর মাধ্যমে মিলে যাওয়া রেকর্ডগুলো নির্বাচন করবে।
LEFT JOIN বা LEFT OUTER JOIN টেবিলের বাম পাশে থাকা টেবিলের সব রেকর্ড সহ, ডান পাশের টেবিলের মিলিত রেকর্ডগুলো দেখায়।
উদাহরণ:
SELECT customers.customer_name, orders.order_id
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;
এই কোয়েরিটি customers
টেবিলের সব রেকর্ড এবং মেলে এমন orders
রেকর্ডগুলো দেখাবে। যদি কোন customer_id
এর সাথে মিল না থাকে, তবে order_id
এর মান NULL
হবে।
RIGHT JOIN হল LEFT JOIN এর বিপরীত, যেখানে ডান পাশে থাকা টেবিলের সব রেকর্ড দেখানো হয়।
উদাহরণ:
SELECT orders.order_id, customers.customer_name
FROM orders
RIGHT JOIN customers
ON orders.customer_id = customers.customer_id;
এটি orders
টেবিলের সব রেকর্ড এবং মেলে এমন customers
রেকর্ডগুলো দেখাবে।
FULL OUTER JOIN টেবিলের উভয় পাশের সমস্ত রেকর্ড দেখায়, এবং যেখানেই মেলানো যাবে না, সেখানেই NULL
দেখাবে।
উদাহরণ:
SELECT orders.order_id, customers.customer_name
FROM orders
FULL OUTER JOIN customers
ON orders.customer_id = customers.customer_id;
এটি orders
এবং customers
টেবিলের সমস্ত রেকর্ড দেখাবে, যেখানে মেলানো যায় না, সেখানে NULL
দেখানো হবে।
Presto তে Filters ব্যবহার করে আপনি নির্দিষ্ট শর্ত অনুসারে ডেটা ফিল্টার করতে পারেন। SQL তে WHERE ক্লজ ব্যবহার করে ফিল্টারিং করা হয়।
SELECT order_id, customer_name, order_date
FROM orders
WHERE order_date > '2023-01-01'
AND total_amount > 100;
এই কোয়েরিটি orders
টেবিল থেকে এমন সমস্ত অর্ডার বের করবে যার order_date
২০২৩ সালের ১ জানুয়ারি বা তার পরের এবং total_amount
১০০ এর বেশি।
LIKE ফিল্টার ব্যবহার করে প্যাটার্ন মিলিয়ে ডেটা ফিল্টার করা যায়।
উদাহরণ:
SELECT customer_name, email
FROM customers
WHERE email LIKE '%@gmail.com';
এটি সমস্ত customers
টেবিলের রেকর্ড ফিরিয়ে দেবে, যাদের ইমেইল ঠিকানায় @gmail.com
থাকবে।
IN ফিল্টার ব্যবহার করে একাধিক মানের মধ্যে ডেটা খোঁজা যায়।
উদাহরণ:
SELECT order_id, order_date
FROM orders
WHERE order_id IN (1, 2, 3, 5);
এটি orders
টেবিল থেকে সেই রেকর্ডগুলো ফিরিয়ে দেবে যেগুলোর order_id
১, ২, ৩, অথবা ৫।
Presto তে Aggregation ব্যবহার করে ডেটার উপর বিভিন্ন গণনা করা যায়, যেমন মোট, গড়, মিনিমাম, ম্যাক্সিমাম ইত্যাদি। GROUP BY এবং HAVING ক্লজগুলি Aggregation অপারেশনের সাথে ব্যবহৃত হয়।
SUM() ফাংশন মোট মান বের করতে ব্যবহৃত হয়।
উদাহরণ:
SELECT customer_id, SUM(total_amount) AS total_spent
FROM orders
GROUP BY customer_id;
এই কোয়েরিটি orders
টেবিল থেকে প্রতিটি customer_id
এর জন্য মোট খরচ (sum) বের করবে।
AVG() ফাংশন গড় বের করতে ব্যবহৃত হয়।
উদাহরণ:
SELECT AVG(total_amount) AS average_order_value
FROM orders;
এই কোয়েরিটি সমস্ত অর্ডারের গড় মান বের করবে।
COUNT() ফাংশন রেকর্ডের সংখ্যা গননা করতে ব্যবহৃত হয়।
উদাহরণ:
SELECT customer_id, COUNT(order_id) AS total_orders
FROM orders
GROUP BY customer_id;
এই কোয়েরিটি প্রতিটি customer_id
এর জন্য মোট অর্ডারের সংখ্যা বের করবে।
MAX() এবং MIN() ফাংশন যথাক্রমে সর্বোচ্চ এবং সর্বনিম্ন মান বের করতে ব্যবহৃত হয়।
উদাহরণ:
SELECT MAX(total_amount) AS max_order_value, MIN(total_amount) AS min_order_value
FROM orders;
এই কোয়েরিটি সমস্ত অর্ডারের মধ্যে সর্বোচ্চ এবং সর্বনিম্ন অর্ডারের মূল্য বের করবে।
GROUP BY ডেটাকে একটি নির্দিষ্ট কলামের উপর ভিত্তি করে গ্রুপ করে এবং HAVING শর্ত নির্ধারণের জন্য ব্যবহৃত হয় (যা WHERE এর মতো, তবে এটি গ্রুপড ডেটার জন্য ব্যবহার হয়)।
উদাহরণ:
SELECT customer_id, SUM(total_amount) AS total_spent
FROM orders
GROUP BY customer_id
HAVING SUM(total_amount) > 500;
এই কোয়েরিটি সেই customer_id
গুলির জন্য মোট খরচ বের করবে যাদের খরচ ৫০০ এর বেশি।
Presto তে এই অপারেশনগুলি ব্যবহার করে আপনি বড় ডেটাসেটের উপর দ্রুত এবং কার্যকরীভাবে বিভিন্ন ধরনের বিশ্লেষণ করতে পারেন।
আরও দেখুন...